/**
 * Copyright (c) 2017,安徽皖通科技股份有限公司 All rights reserved.
 * @data:2017年10月10日
 * @author:MaShibo
 */
package com.wttech.dzzf.process.model.user;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

import com.wtkj.dao.annotation.DatabaseTable;
import com.wtkj.dao.annotation.PrimaryKey;
import com.wtkj.vo.AbstractValueObject;

import cn.com.taiji.sdk.model.comm.protocol.annotation.EnumValidate;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 客户信息
 * 
 * @date 2017年10月10日
 * @author MaShibo
 */
@SuppressWarnings("serial")
@Data
@EqualsAndHashCode(callSuper = false)
@DatabaseTable(tableName = "BS_USER")
public class User extends AbstractValueObject {
    
    
    @PrimaryKey
    @Size(min = 17, max = 17, message = "id为17位数字字符")
    @NotNull(message = "id必填")
    private String id;
    
    @NotNull(message = "userType必填")
    @EnumValidate(message = "userType 不正确", regexp = "(1|2)")
    private Integer userType;
    
    @Size(max = 150, message = "userName最大长度为150字符")
    @NotNull(message = "userName必填")
    private String userName;
    
    @EnumValidate(message = "userIdType不正确", regexp = "(101|102|103|104|105|106|201|202|203|204|205|206|199|299)")
    @NotNull(message = "userIdType必填")
    private Integer userIdType;
    
    @Size(max = 30, message = "userIdNum最大长度为30字符")
    @NotNull(message = "userIdNum必填")
    private String userIdNum;
    
    @Size(max = 20, message = "tel最大长度为20字符")
    @NotNull(message = "tel必填")
    private String tel;
    
    @Size(max = 300, message = "address最大长度为100字符")
    @NotNull(message = "address必填")
    private String address;
    
    @EnumValidate(message = "registeredType不正确", regexp = "(1|2)")
    @NotNull(message = "registeredType必填")
    private Integer registeredType;
    
    @Size(max = 20, message = "channelId最大长度为20字符")
    @NotNull(message = "channelId必填")
    private String channelId;
    
    @Size(max = 20, message = "registeredTime最大长度为20字符")
    @NotNull(message = "registeredTime必填")
    private String registeredTime;
    
    @Size(max = 100, message = "department最大长度为100字符")
    private String department;
    
    @Size(max = 150, message = "agentName最大长度为150字符")
    private String agentName;
    
    @EnumValidate(message = "agentIdType不正确", regexp = "(101|102|103|104|105|106|201|202|203|204|205|206|199|299)")
    private Integer agentIdType;
    
    @Size(max = 30, message = "agentIdNum最大长度为30字符")
    private String agentIdNum;
    
    @EnumValidate(message = "operation不正确", regexp = "(1|2|3)")
    @NotNull(message = "operation必填")
    private Integer operation = 1;
    
    @EnumValidate(message = "status不正确", regexp = "(1|2)")
    @NotNull(message = "status必填")
    private Integer status;
    
    @Size(max = 20, message = "registerTime最大长度为20字符")
    @NotNull(message = "operation必填")
    private String statusChangeTime;
    
    @Size(max = 100, message = "bank 最大长度为100字符")
    private String bank;
    
    @Size(max = 100, message = "bankAddr 最大长度为100字符")
    private String bankAddr;
    
    @Size(max = 20, message = "bankAccount 最大长度为20字符")
    private String bankAccount;
    
    @Size(max = 20, message = "taxpayerCode 最大长度为20字符")
    private String taxpayerCode;
    
    @Size(max = 20, message = "creditCode 最大长度为20字符")
    private String creditCode;
    
}
